@@ -30,6 +30,7 @@ |
||
| 30 | 30 |
<script src="scripts/controllers/background.js"></script> |
| 31 | 31 |
<script src="scripts/controllers/navigation.js"></script> |
| 32 | 32 |
<script src="scripts/controllers/slideshow.js"></script> |
| 33 |
+ <script src="scripts/services/data.js"></script> |
|
| 33 | 34 |
|
| 34 | 35 |
</head> |
| 35 | 36 |
<body ng-app="goApp"> |
@@ -18,6 +18,7 @@ angular |
||
| 18 | 18 |
'ngTouch', |
| 19 | 19 |
'famous.angular', |
| 20 | 20 |
'ngFx', |
| 21 |
+ 'goApp.data', |
|
| 21 | 22 |
'goApp.index', |
| 22 | 23 |
'goApp.background', |
| 23 | 24 |
'goApp.navigation', |
@@ -7,8 +7,16 @@ |
||
| 7 | 7 |
* # AboutCtrl |
| 8 | 8 |
* Controller of the domainManagerApp |
| 9 | 9 |
*/ |
| 10 |
-angular.module('goApp.navigation', ['famous.angular', 'ngRoute', 'ngFx', 'ngAnimate'])
|
|
| 11 |
- .controller('NavigationController',['$scope', '$rootScope', '$famous', '$timeline', '$http', '$location', '$route', '$timeout', function ($scope, $rootScope, $famous, $timeline, $http, $location, $route, $timeout) {
|
|
| 10 |
+angular.module('goApp.navigation', ['famous.angular', 'ngRoute', 'ngFx', 'ngAnimate', 'goApp.data'])
|
|
| 11 |
+ .controller('NavigationController',['$scope', '$rootScope', '$famous', '$timeline', '$http', '$location', '$route', '$timeout', 'Data', function ($scope, $rootScope, $famous, $timeline, $http, $location, $route, $timeout, Data) {
|
|
| 12 |
+ |
|
| 13 |
+ $rootScope.$on('data:loaded', function(data) {
|
|
| 14 |
+ if(!$scope.$$phase) {
|
|
| 15 |
+ $scope.$apply(function(){
|
|
| 16 |
+ $scope.navigation = Data.get(); |
|
| 17 |
+ }); |
|
| 18 |
+ } |
|
| 19 |
+ }); |
|
| 12 | 20 |
|
| 13 | 21 |
$http({
|
| 14 | 22 |
method: 'GET', |
@@ -22,28 +30,55 @@ angular.module('goApp.navigation', ['famous.angular', 'ngRoute', 'ngFx', 'ngAnim
|
||
| 22 | 30 |
$scope.subNavigation = [] |
| 23 | 31 |
$scope.sub2Navigation = [] |
| 24 | 32 |
$scope.last_click = "" |
| 33 |
+ $scope.last_click2 = "" |
|
| 25 | 34 |
|
| 26 | 35 |
$scope.btnNavclick = function(index){
|
| 27 | 36 |
if($scope.navigation[index].link == 'submenu') {
|
| 28 | 37 |
if($scope.last_click != $scope.navigation[index].title){
|
| 29 | 38 |
console.log("Opening submenu: " + $scope.navigation[index].title)
|
| 39 |
+ $scope.sub2Navigation = []; |
|
| 30 | 40 |
$scope.subNavigation = $scope.navigation[index].submenu; |
| 31 | 41 |
} else if ($scope.last_click == $scope.navigation[index].title && $scope.subNavigation.length == 0) {
|
| 32 | 42 |
$scope.subNavigation = $scope.navigation[index].submenu; |
| 33 | 43 |
console.log("Opening submenu: " + $scope.navigation[index].title)
|
| 34 | 44 |
} else {
|
| 35 | 45 |
$scope.subNavigation = []; |
| 46 |
+ $scope.sub2Navigation = []; |
|
| 36 | 47 |
console.log("Closing submenu: " + $scope.navigation[index].title)
|
| 37 | 48 |
} |
| 38 | 49 |
$scope.last_click = $scope.navigation[index].title |
| 39 | 50 |
} else {
|
| 40 |
- console.log("Redirecting to page " + $scope.navigation[index].link)
|
|
| 51 |
+ console.log("> Redirecting to page " + $scope.navigation[index].link)
|
|
| 41 | 52 |
$location.path($scope.navigation[index].link); |
| 42 | 53 |
} |
| 43 | 54 |
} |
| 44 | 55 |
|
| 45 | 56 |
$scope.btnSubNavclick = function(index){
|
| 46 |
- $scope.sub2Navigation = $scope.subNavigation[index].submenu; |
|
| 57 |
+ if($scope.subNavigation[index].link == "submenu") {
|
|
| 58 |
+ if($scope.last_click2 != $scope.subNavigation[index].title){
|
|
| 59 |
+ $scope.sub2Navigation = []; |
|
| 60 |
+ $scope.sub2Navigation = $scope.subNavigation[index].submenu; |
|
| 61 |
+ } else if ($scope.last_click2 == $scope.subNavigation[index].title && $scope.sub2Navigation.length == 0){
|
|
| 62 |
+ $scope.sub2Navigation = $scope.subNavigation[index].submenu; |
|
| 63 |
+ console.log("Opening submenu: " + $scope.subNavigation[index].title)
|
|
| 64 |
+ } else {
|
|
| 65 |
+ $scope.sub2Navigation = []; |
|
| 66 |
+ console.log("Closing submenu: " + $scope.subNavigation[index].title)
|
|
| 67 |
+ } |
|
| 68 |
+ $scope.last_click2 = $scope.subNavigation[index].title |
|
| 69 |
+ } else {
|
|
| 70 |
+ console.log("> Redirecting to page " + $scope.subNavigation[index].link)
|
|
| 71 |
+ $location.path($scope.subNavigation[index].link); |
|
| 72 |
+ } |
|
| 73 |
+ } |
|
| 74 |
+ |
|
| 75 |
+ $scope.btnSub2Navclick = function(index) {
|
|
| 76 |
+ if($scope.sub2Navigation[index].link != "submenu") {
|
|
| 77 |
+ console.log("> Redirecting to page " + $scope.sub2Navigation[index].link)
|
|
| 78 |
+ $location.path($scope.sub2Navigation[index].link); |
|
| 79 |
+ } else {
|
|
| 80 |
+ console.log("* Error: Only 2 levels of submenu allowed.")
|
|
| 81 |
+ } |
|
| 47 | 82 |
} |
| 48 | 83 |
|
| 49 | 84 |
}]); |
@@ -7,11 +7,19 @@ |
||
| 7 | 7 |
* # AboutCtrl |
| 8 | 8 |
* Controller of the domainManagerApp |
| 9 | 9 |
*/ |
| 10 |
-angular.module('goApp.slideshow', ['ngFx', 'ngAnimate'])
|
|
| 11 |
- .controller('SlideshowController',['$scope', '$rootScope', '$famous', '$timeline', '$location', '$route', '$timeout', function ($scope, $rootScope, $famous, $timeline, $location, $route, $timeout) {
|
|
| 12 |
- |
|
| 13 |
- $scope.data = {message: "Hello World"};
|
|
| 10 |
+angular.module('goApp.slideshow', ['ngFx', 'ngAnimate', 'goApp.data'])
|
|
| 11 |
+ .controller('SlideshowController',['$scope', '$rootScope', '$famous', '$timeline', '$location', '$route', '$timeout', 'Data', function ($scope, $rootScope, $famous, $timeline, $location, $route, $timeout, Data) {
|
|
| 14 | 12 |
|
| 13 |
+ var link = $location.url() |
|
| 14 |
+ $scope.pageData = Data.getPageData(link); |
|
| 15 |
+ $rootScope.$on('data:loaded', function(data) {
|
|
| 16 |
+ if(!$scope.$$phase) {
|
|
| 17 |
+ $scope.$apply(function(){
|
|
| 18 |
+ $scope.pageData = Data.getPageData(link); |
|
| 19 |
+ }); |
|
| 20 |
+ } |
|
| 21 |
+ }); |
|
| 22 |
+ |
|
| 15 | 23 |
// FadeIn |
| 16 | 24 |
$timeout(function(){
|
| 17 | 25 |
$scope.showView = true; |
@@ -51,4 +59,7 @@ angular.module('goApp.slideshow', ['ngFx', 'ngAnimate'])
|
||
| 51 | 59 |
|
| 52 | 60 |
|
| 53 | 61 |
|
| 62 |
+ $scope.pageData = Data.getPageData(); |
|
| 63 |
+ $scope.startAnimations(); |
|
| 64 |
+ |
|
| 54 | 65 |
}]); |
@@ -9,11 +9,22 @@ |
||
| 9 | 9 |
[ |
| 10 | 10 |
{
|
| 11 | 11 |
"title" : "Caligramas", |
| 12 |
- "link" : "#/caligramas" |
|
| 12 |
+ "link" : "/caligramas", |
|
| 13 |
+ "slides" : |
|
| 14 |
+ [ |
|
| 15 |
+ {
|
|
| 16 |
+ "title" : "Caligrama 1", |
|
| 17 |
+ "url" : "/content/images/A3.jpg" |
|
| 18 |
+ }, |
|
| 19 |
+ {
|
|
| 20 |
+ "title" : "Caligrama 2", |
|
| 21 |
+ "url" : "/content/images/cave-1.jpg" |
|
| 22 |
+ } |
|
| 23 |
+ ] |
|
| 13 | 24 |
}, |
| 14 | 25 |
{
|
| 15 | 26 |
"title" : "Figuras", |
| 16 |
- "link" : "#/figuras" |
|
| 27 |
+ "link" : "/figuras" |
|
| 17 | 28 |
}, |
| 18 | 29 |
{
|
| 19 | 30 |
"title" : "Cadernos", |
@@ -22,15 +33,15 @@ |
||
| 22 | 33 |
[ |
| 23 | 34 |
{
|
| 24 | 35 |
"title" : "York Cathedral", |
| 25 |
- "link" : "#/york-cathedral" |
|
| 36 |
+ "link" : "/york-cathedral" |
|
| 26 | 37 |
}, |
| 27 | 38 |
{
|
| 28 | 39 |
"title" : "Bologramas", |
| 29 |
- "link" : "#/bologramas" |
|
| 40 |
+ "link" : "/bologramas" |
|
| 30 | 41 |
}, |
| 31 | 42 |
{
|
| 32 | 43 |
"title" : "Sarrafos & Garranchos", |
| 33 |
- "link" : "#/sarrafos-e-garranchos" |
|
| 44 |
+ "link" : "/sarrafos-e-garranchos" |
|
| 34 | 45 |
} |
| 35 | 46 |
] |
| 36 | 47 |
} |
@@ -44,25 +55,25 @@ |
||
| 44 | 55 |
[ |
| 45 | 56 |
{
|
| 46 | 57 |
"title" : "Carvão & Tule", |
| 47 |
- "link" : "#/carvao-e-tule" |
|
| 58 |
+ "link" : "/carvao-e-tule" |
|
| 48 | 59 |
}, |
| 49 | 60 |
{
|
| 50 | 61 |
"title": "Sono (vidros)", |
| 51 |
- "link" : "#/sono" |
|
| 62 |
+ "link" : "/sono" |
|
| 52 | 63 |
}, |
| 53 | 64 |
{
|
| 54 | 65 |
"title" : "Relevos", |
| 55 |
- "link" : "#/relevos" |
|
| 66 |
+ "link" : "/relevos" |
|
| 56 | 67 |
}, |
| 57 | 68 |
{
|
| 58 | 69 |
"title" : "cut-outs", |
| 59 |
- "link" : "#/cut-outs" |
|
| 70 |
+ "link" : "/cut-outs" |
|
| 60 | 71 |
} |
| 61 | 72 |
] |
| 62 | 73 |
}, |
| 63 | 74 |
{
|
| 64 | 75 |
"title" : "poemas", |
| 65 |
- "link" : "#/poemas" |
|
| 76 |
+ "link" : "/poemas" |
|
| 66 | 77 |
}, |
| 67 | 78 |
{
|
| 68 | 79 |
"title" : "filmes", |
@@ -71,7 +82,7 @@ |
||
| 71 | 82 |
[ |
| 72 | 83 |
{
|
| 73 | 84 |
"title" : "Trifonia", |
| 74 |
- "link" : "#/trifonia" |
|
| 85 |
+ "link" : "/trifonia" |
|
| 75 | 86 |
}, |
| 76 | 87 |
{
|
| 77 | 88 |
"title" : "Sonho contra-sono", |
@@ -79,21 +90,21 @@ |
||
| 79 | 90 |
}, |
| 80 | 91 |
{
|
| 81 | 92 |
"title" : "Animações", |
| 82 |
- "link" : "#/animacoes" |
|
| 93 |
+ "link" : "/animacoes" |
|
| 83 | 94 |
}, |
| 84 | 95 |
{
|
| 85 | 96 |
"title" : "Performances", |
| 86 |
- "link" : "#/performances" |
|
| 97 |
+ "link" : "/performances" |
|
| 87 | 98 |
} |
| 88 | 99 |
] |
| 89 | 100 |
}, |
| 90 | 101 |
{
|
| 91 | 102 |
"title" : "Fotos Contexto Humano", |
| 92 |
- "link" : "#/fotos-contexto-humano" |
|
| 103 |
+ "link" : "/fotos-contexto-humano" |
|
| 93 | 104 |
}, |
| 94 | 105 |
{
|
| 95 | 106 |
"title" : "Textos Críticos", |
| 96 |
- "link" : "#/textos-criticos" |
|
| 107 |
+ "link" : "/textos-criticos" |
|
| 97 | 108 |
}, |
| 98 | 109 |
{
|
| 99 | 110 |
"title" : "Currículo", |
@@ -0,0 +1,53 @@ |
||
| 1 |
+"use strict" |
|
| 2 |
+ |
|
| 3 |
+angular.module('goApp.data', [])
|
|
| 4 |
+.service('Data', [ '$rootScope', '$http', function($rootScope, $http) {
|
|
| 5 |
+ var data = []; |
|
| 6 |
+ var data_loaded = false; |
|
| 7 |
+ |
|
| 8 |
+ $http({
|
|
| 9 |
+ method: 'GET', |
|
| 10 |
+ url: 'scripts/data.json' |
|
| 11 |
+ }).success(function(json_data) {
|
|
| 12 |
+ data = json_data; |
|
| 13 |
+ data_loaded = true; |
|
| 14 |
+ $rootScope.$broadcast('data:loaded', data);
|
|
| 15 |
+ console.log('> Loaded data.json');
|
|
| 16 |
+ }); |
|
| 17 |
+ |
|
| 18 |
+ this.get = function() {
|
|
| 19 |
+ return data; |
|
| 20 |
+ } |
|
| 21 |
+ |
|
| 22 |
+ this.getPageData = function(link){
|
|
| 23 |
+ |
|
| 24 |
+ if (data_loaded) {
|
|
| 25 |
+ |
|
| 26 |
+ var page_data = ""; |
|
| 27 |
+ for (var i = 0; i < data.navigation.length; i++) {
|
|
| 28 |
+ if(data.navigation[i].link == "submenu"){
|
|
| 29 |
+ for (var a = 0; a < data.navigation[i].submenu.length; a++) {
|
|
| 30 |
+ if(data.navigation[i].submenu[a].link == "submenu"){
|
|
| 31 |
+ for (var b = 0; b < data.navigation[i].submenu[a].submenu.length; b++) {
|
|
| 32 |
+ if(data.navigation[i].submenu[a].submenu[b].link == link){
|
|
| 33 |
+ page_data = data.navigation[i].submenu[a].submenu[b]; |
|
| 34 |
+ } |
|
| 35 |
+ } |
|
| 36 |
+ } else if(data.navigation[i].submenu[a].link == link){
|
|
| 37 |
+ page_data = data.navigation[i].submenu[a] |
|
| 38 |
+ } |
|
| 39 |
+ } |
|
| 40 |
+ } else if(data.navigation[i].link == link){
|
|
| 41 |
+ page_data = data.navigation[i]; |
|
| 42 |
+ } |
|
| 43 |
+ } |
|
| 44 |
+ |
|
| 45 |
+ if(page_data){
|
|
| 46 |
+ console.log(page_data); |
|
| 47 |
+ } |
|
| 48 |
+ } |
|
| 49 |
+ |
|
| 50 |
+ return page_data; |
|
| 51 |
+ } |
|
| 52 |
+ |
|
| 53 |
+}]); |